package com.cfpamf.ms.insur.wx.request;


import com.cfpamf.ms.insur.wx.model.WxCloseOrderModel;
import com.cfpamf.ms.insur.wx.response.WxCloseOrderResponse;

/**
 * 应用场景
 * 以下情况需要调用关单接口：商户订单支付失败需要生成新单号重新发起支付，要对原订单号调用关单，避免重复支付；系统下单后，用户支付超时，系统退出不再受理，避免用户继续，请调用关单接口。
 * <p>
 * 注意：订单生成后不能马上调用关单接口，最短调用时间间隔为5分钟。
 * <p>
 * 可以能出现的错误
 * <p>
 * ORDERPAID	订单已支付	订单已支付，不能发起关单	订单已支付，不能发起关单，请当作已支付的正常交易
 * <p>
 * SYSTEMERROR	系统错误	系统错误	系统异常，请重新调用该API
 * <p>
 * ORDERCLOSED	订单已关闭	订单已关闭，无法重复关闭	订单已关闭，无需继续调用
 * <p>
 * SIGNERROR	签名错误	参数签名结果不正确	请检查签名参数和方法是否都符合签名算法要求
 * <p>
 * REQUIRE_POST_METHOD	请使用post方法	未使用post传递参数 	请检查请求参数是否通过post方法提交
 * <p>
 * XML_FORMAT_ERROR	XML格式错误	XML格式错误	请检查XML参数格式是否正确
 */
public class WxCloseOrderRequest extends WxAbstractRequest<WxCloseOrderModel, WxCloseOrderResponse> {

    public WxCloseOrderRequest(WxCloseOrderModel model) {
        setModel(model);
    }

    @Override
    public String getApiAction() {
        return "/pay/closeorder";
    }

    @Override
    public Class<WxCloseOrderModel> getObjectClass() {
        return WxCloseOrderModel.class;
    }

    @Override
    public Class<WxCloseOrderResponse> getResponseClass() {
        return WxCloseOrderResponse.class;
    }

    @Override
    public boolean requireCert() {
        return false;
    }
}
